from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from openpyxl import Workbook
import time


# Указываем путь к ChromeDriver
chrome_driver_path = "C:\\Users\\ogrigoryev\\PycharmProjects\\datanewton-pars-status\\chromedriver-win32\\chromedriver.exe"

# Инициализация сервиса ChromeDriver
service = webdriver.chrome.service.Service(chrome_driver_path)
service.start()

# Запуск драйвера с указанием сервиса
driver = webdriver.Chrome(service=service)

# Переход по указанному URL
driver.get("https://datanewton.ru/")

# Создаем новую книгу Excel и активный лист
wb = Workbook()
ws = wb.active

# Записываем заголовки для столбцов
ws.append(["ИНН", "Название организации", "Статус организации"])

# Чтение значений ИНН из файла и запись результатов в Excel
with open("inn.txt") as file:
    for line in file:
        search_input = driver.find_element(By.XPATH,
                                           "//input[@placeholder='Искать по названию, руководителю, учредителю, адресу, ОГРН и ИНН']")
        search_input.send_keys(line.strip())
        search_input.send_keys(Keys.RETURN)

        time.sleep(3)

        result_elements = driver.find_elements(By.CLASS_NAME, "d-flex.flex-column.justify-content-center.min-w-0")
        if len(result_elements) > 1:
            result_elements[0].click()

        organization_name = WebDriverWait(driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, "/html/body/div[1]/main/div/article/div/table[1]/tbody/tr[1]/td[2]/div/span"))).text
        organization_status = WebDriverWait(driver, 10).until(EC.visibility_of_element_located(
            (By.XPATH, "/html/body/div[1]/main/div/article/div/table[1]/tbody/tr[5]/td[2]/div"))).text

        # Добавляем данные в Excel файл
        ws.append([line.strip(), organization_name, organization_status])

# Сохраняем книгу Excel после завершения обработки всех данных
wb.save("organizations_info.xlsx")

# Закрытие браузера
driver.quit()
